Hit MOZ_CRASH(This is unsafe! Fix the caller!) at src/dom/events/EventDispatcher.cpp:818
Categories
(Core :: Storage: localStorage & sessionStorage, defect, P2)
Tracking
()
People
(Reporter: tsmith, Assigned: ytausky)
References
(Blocks 1 open bug)
Details
(4 keywords, Whiteboard: [post-critsmash-triage])
Attachments
(3 files)
Comment 1•6 years ago
|
||
Comment 2•6 years ago
|
||
Comment 3•6 years ago
|
||
![]() |
||
Comment 4•6 years ago
|
||
Comment 5•6 years ago
|
||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
After some discussion, it looks like the best option here would be add another interface for background child actor initialization. The new interface would return a runnable than must be executed on the main thread, so it can either get dispatched on it (that's what GetOrCreateForCurrentThread does), or sent by other means. In LS's case, we'd send it over directly and run it inside StartAndReturnResponse, thus avoiding the deadlock problem that required the event loop spinning.
Assignee | ||
Updated•6 years ago
|
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
The right approach seems to be a contentious issue, I'll update here once we reach consensus.
Assignee | ||
Comment 10•6 years ago
|
||
After further discussion, I'm going to go ahead with the approach outlined by Jan.
Comment 11•6 years ago
|
||
[Tracking Requested - why for this release]: sec-high found by both internal and external fuzzing (bug 1516018).
Updated•6 years ago
|
Assignee | ||
Comment 12•6 years ago
|
||
Short update: since we decided to stick with the nested event loops, I've been looking at what's required to support them. The stack in this bug is reached by a thread observer that's installed by the CSS loader in what seems to be somewhat of a hack. I'm currently working on implementing it with normal primitives instead.
Assignee | ||
Comment 13•6 years ago
|
||
Just a note: the code path the hits this bug is currently preffed off by default (it's part of LSNG).
Comment 14•6 years ago
|
||
(In reply to Yaron Tausky [:ytausky] from comment #13)
Just a note: the code path the hits this bug is currently preffed off by default (it's part of LSNG).
Does that mean we don't need to fix this in 66 (Liz is tracking this (see above between comment 11 and comment 12))?
Assignee | ||
Comment 15•6 years ago
|
||
Yes, I don't think this is a must-fix for 66. The only way a user could be affected is by them turning LSNG on in about:config.
Updated•6 years ago
|
Comment 16•6 years ago
|
||
Yaron is doing some work in bug 1523581 related to this.
Assignee | ||
Comment 17•6 years ago
|
||
![]() |
||
Comment 18•6 years ago
|
||
Landed: https://hg.mozilla.org/integration/autoland/rev/44d83d32e254ccdb9441b8c0388262e436918da5
Backed out changeset 44d83d32e254 (bug 1516277) for failing at /test/unit/test_eviction.js
Backout link: https://hg.mozilla.org/integration/autoland/rev/4e12cf72f03b56184aacaef83af7719565eafce3
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&selectedJob=232175644&revision=44d83d32e254ccdb9441b8c0388262e436918da5
Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=232175644&repo=autoland&lineNumber=2121
Log snippet:
[task 2019-03-06T15:24:04.859Z] 15:24:04 INFO - TEST-START | dom/localstorage/test/unit/test_eviction.js
[task 2019-03-06T15:24:05.152Z] 15:24:05 WARNING - TEST-UNEXPECTED-FAIL | dom/localstorage/test/unit/test_eviction.js | xpcshell return code: 0
[task 2019-03-06T15:24:05.152Z] 15:24:05 INFO - TEST-INFO took 292ms
[task 2019-03-06T15:24:05.153Z] 15:24:05 INFO - >>>>>>>
[task 2019-03-06T15:24:05.154Z] 15:24:05 INFO - (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2019-03-06T15:24:05.155Z] 15:24:05 INFO - TEST-PASS | dom/localstorage/test/unit/test_eviction.js | undefined assertion name - There should be a testSteps function - true == true
[task 2019-03-06T15:24:05.156Z] 15:24:05 INFO - TEST-PASS | dom/localstorage/test/unit/test_eviction.js | undefined assertion name - testSteps should be an async function - true == true
[task 2019-03-06T15:24:05.157Z] 15:24:05 INFO - (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2019-03-06T15:24:05.157Z] 15:24:05 INFO - (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2019-03-06T15:24:05.159Z] 15:24:05 INFO - running event loop
[task 2019-03-06T15:24:05.159Z] 15:24:05 INFO - "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties"
[task 2019-03-06T15:24:05.163Z] 15:24:05 INFO - dom/localstorage/test/unit/test_eviction.js | Starting testSteps
[task 2019-03-06T15:24:05.164Z] 15:24:05 INFO - (xpcshell/head.js) | test testSteps pending (2)
[task 2019-03-06T15:24:05.164Z] 15:24:05 INFO - "Setting prefs"
[task 2019-03-06T15:24:05.167Z] 15:24:05 INFO - "Setting limits"
[task 2019-03-06T15:24:05.167Z] 15:24:05 INFO - (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2019-03-06T15:24:05.169Z] 15:24:05 INFO - "Getting storages"
[task 2019-03-06T15:24:05.172Z] 15:24:05 INFO - "Filling up entire default storage"
[task 2019-03-06T15:24:05.172Z] 15:24:05 INFO - Unexpected exception QuotaExceededError: The quota has been exceeded.
[task 2019-03-06T15:24:05.172Z] 15:24:05 INFO - testSteps@/builds/worker/workspace/build/tests/xpcshell/tests/dom/localstorage/test/unit/test_eviction.js:42:17
[task 2019-03-06T15:24:05.172Z] 15:24:05 INFO - async*run_next_test/_run_next_test/<@/builds/worker/workspace/build/tests/xpcshell/head.js:1434:22
[task 2019-03-06T15:24:05.173Z] 15:24:05 INFO - _run_next_test@/builds/worker/workspace/build/tests/xpcshell/head.js:1434:38
[task 2019-03-06T15:24:05.173Z] 15:24:05 INFO - run@/builds/worker/workspace/build/tests/xpcshell/head.js:685:9
[task 2019-03-06T15:24:05.174Z] 15:24:05 INFO - _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:224:6
[task 2019-03-06T15:24:05.175Z] 15:24:05 INFO - _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:526:5
[task 2019-03-06T15:24:05.175Z] 15:24:05 INFO - @-e:1:1
[task 2019-03-06T15:24:05.176Z] 15:24:05 INFO - exiting test
Assignee | ||
Comment 19•6 years ago
|
||
The test needed to be fixed, but I thought the fix already landed. I'll include it in the next landing attempt.
![]() |
||
Comment 20•6 years ago
|
||
https://hg.mozilla.org/integration/autoland/rev/29e28daebae57e16db9d32017e7f34eb968d02fb
https://hg.mozilla.org/mozilla-central/rev/29e28daebae5
Updated•6 years ago
|
Updated•6 years ago
|
Comment 21•6 years ago
|
||
I verified the fix using the test case attached on asan builds on Ubuntu 18.04 x64 and Windows 10 x64. The issue is not reproducing.
However, I couldn't reproduce the issue on an older build because the flag for Fx 66 and Fx 55 is disabled. Can somebody that could reproduce the issue verify the fix also? Just to be sure that everything is fine.
Thank you.
Comment 23•6 years ago
|
||
Taking in consideration what is written in comment 21 and comment 22 I will mark this bug as verified fixed.
Updated•5 years ago
|
Description
•